﻿using Administracion;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.SqlClient;
using System.Data;
using Model;

namespace Administracion.Controllers
{
    public class EmpresaController : Controller
    {
        private DataContext dataContext = new DataContext();

        public ActionResult IndexEmpresa()
        {
            var empresas = dataContext.empresas;
            return View(model: empresas);
        }

        [HttpGet]
        public ActionResult Agregar()
        {
            var empresa = new Empresa();
            return View(model: empresa);
        }

        [HttpPost]
        public ActionResult Agregar(Empresa empresa)
        {

            if (ModelState.IsValid && empresa.codigo > 0)
            {

                if (dataContext.agregarEmpresa(empresa))
                {
                    return RedirectToAction("IndexEmpresa");
                }
                else {

                    ViewBag.Error = true;
                }

            }

            
            return this.View(empresa);
        }

        [HttpGet]
        public ActionResult Editar(int id)
        {
            var empresa = dataContext.empresas.Find(id);
            return View(model: empresa);
        }

        [HttpPost]
        public ActionResult Editar(Empresa empresa)
        {
            //var empresa = dataContext.empresas.Find(id);

            if (ModelState.IsValid && empresa.codigo > 0)
            {
                Empresa empresaBase = dataContext.empresas.Find(empresa.id);
                empresaBase.nombre = empresa.nombre;
                empresaBase.codigo = empresa.codigo;

                dataContext.SaveChanges();
                return RedirectToAction("IndexEmpresa", "Empresa");

            }
            return View(model: empresa);
        }

        public ActionResult Eliminar(int id)
        {
            var empresa = dataContext.empresas.Find(id);
            dataContext.empresas.Remove(empresa);
            dataContext.SaveChanges();

            return RedirectToAction("IndexEmpresa", "Empresa");
        }




        public ActionResult consultarEmpresa(int id)
        {

            Empresa empresa = dataContext.buscarEmpresa(id);
            return Json(empresa, JsonRequestBehavior.AllowGet);



        }


    }
}